[connectedmachine] release preview version 2026-06-16#10120
Conversation
|
Validation for Breaking Change Starting...
Thanks for your contribution! |
|
Hi @yaotongms, |
|
Azure Pipelines: There may be pipelines that require an authorized user to comment /azp run to run. |
There was a problem hiding this comment.
Pull request overview
This PR updates the connectedmachine Azure CLI extension to a new preview release by bumping the extension version and regenerating a large set of AAZ-based command modules against the 2026-06-16-preview API, including new/updated command surfaces (e.g., extension metadata discovery, license validation, and Private Link Scope enhancements).
Changes:
- Bump extension version to 4.0.0b1 and add corresponding release history entries.
- Regenerate AAZ command modules to use 2026-06-16-preview, adding new commands/groups (e.g.,
license validate,network-profile show,private-link-scope current show,extension publisher/type list). - Adjust command wiring to unify list behaviors (e.g., consolidate list-by-* commands into
listwhere appropriate).
Reviewed changes
Copilot reviewed 75 out of 76 changed files in this pull request and generated 16 comments.
Show a summary per file
| File | Description |
|---|---|
| src/connectedmachine/setup.py | Bumps extension VERSION to 4.0.0b1. |
| src/connectedmachine/HISTORY.rst | Adds new release history entries for preview release. |
| src/connectedmachine/azext_connectedmachine/custom.py | Adds custom AAZ command wrappers (combined list behaviors). |
| src/connectedmachine/azext_connectedmachine/commands.py | Overrides command table to point to new combined list commands. |
| src/connectedmachine/azext_connectedmachine/aaz/latest/connectedmachine/run_command/_wait.py | Updates API version + schema changes for run-command wait. |
| src/connectedmachine/azext_connectedmachine/aaz/latest/connectedmachine/run_command/_show.py | Updates API version + schema changes for run-command show. |
| src/connectedmachine/azext_connectedmachine/aaz/latest/connectedmachine/run_command/_list.py | Updates API version + schema changes for run-command list. |
| src/connectedmachine/azext_connectedmachine/aaz/latest/connectedmachine/run_command/_delete.py | Updates API version for run-command delete. |
| src/connectedmachine/azext_connectedmachine/aaz/latest/connectedmachine/private_link_scope/network_security_perimeter_configuration/_show.py | Updates API version and response schema fields. |
| src/connectedmachine/azext_connectedmachine/aaz/latest/connectedmachine/private_link_scope/network_security_perimeter_configuration/_reconcile.py | Updates LRO final-state handling and API version. |
| src/connectedmachine/azext_connectedmachine/aaz/latest/connectedmachine/private_link_scope/network_security_perimeter_configuration/_list.py | Updates API version and response schema fields. |
| src/connectedmachine/azext_connectedmachine/aaz/latest/connectedmachine/private_link_scope/current/_show.py | Adds new private-link-scope current show command module. |
| src/connectedmachine/azext_connectedmachine/aaz/latest/connectedmachine/private_link_scope/current/init.py | Adds new command-group package exports. |
| src/connectedmachine/azext_connectedmachine/aaz/latest/connectedmachine/private_link_scope/current/__cmd_group.py | Adds new AAZ command group definition. |
| src/connectedmachine/azext_connectedmachine/aaz/latest/connectedmachine/private_link_scope/_wait.py | Updates API version and operation naming. |
| src/connectedmachine/azext_connectedmachine/aaz/latest/connectedmachine/private_link_scope/_update.py | Enables generic update flow for private-link-scope update. |
| src/connectedmachine/azext_connectedmachine/aaz/latest/connectedmachine/private_link_scope/_show.py | Updates API version and operation naming. |
| src/connectedmachine/azext_connectedmachine/aaz/latest/connectedmachine/private_link_scope/_list.py | Updates API version and list-by-rg vs list routing. |
| src/connectedmachine/azext_connectedmachine/aaz/latest/connectedmachine/private_link_scope/_delete.py | Updates API version and LRO final-state handling. |
| src/connectedmachine/azext_connectedmachine/aaz/latest/connectedmachine/private_link_scope/_create.py | Updates API version and adds serviceExtensions support. |
| src/connectedmachine/azext_connectedmachine/aaz/latest/connectedmachine/private_link_resource/_show.py | Updates API version and argument schema. |
| src/connectedmachine/azext_connectedmachine/aaz/latest/connectedmachine/private_link_resource/_list.py | Updates API version and response schema flags. |
| src/connectedmachine/azext_connectedmachine/aaz/latest/connectedmachine/private_endpoint_connection/_wait.py | Updates API version and argument schema. |
| src/connectedmachine/azext_connectedmachine/aaz/latest/connectedmachine/private_endpoint_connection/_update.py | Updates API version, schema, and LRO final-state handling. |
| src/connectedmachine/azext_connectedmachine/aaz/latest/connectedmachine/private_endpoint_connection/_show.py | Updates API version and argument schema. |
| src/connectedmachine/azext_connectedmachine/aaz/latest/connectedmachine/private_endpoint_connection/_list.py | Updates API version and response schema flags. |
| src/connectedmachine/azext_connectedmachine/aaz/latest/connectedmachine/private_endpoint_connection/_delete.py | Updates API version and LRO final-state handling. |
| src/connectedmachine/azext_connectedmachine/aaz/latest/connectedmachine/network_profile/_show.py | Adds new network-profile show command module. |
| src/connectedmachine/azext_connectedmachine/aaz/latest/connectedmachine/network_profile/init.py | Adds new command-group package exports. |
| src/connectedmachine/azext_connectedmachine/aaz/latest/connectedmachine/network_profile/__cmd_group.py | Adds new AAZ command group definition. |
| src/connectedmachine/azext_connectedmachine/aaz/latest/connectedmachine/license/_wait.py | Updates API version for license wait. |
| src/connectedmachine/azext_connectedmachine/aaz/latest/connectedmachine/license/_validate.py | Adds new license validate command module. |
| src/connectedmachine/azext_connectedmachine/aaz/latest/connectedmachine/license/_update.py | Updates API version + enables generic update flow. |
| src/connectedmachine/azext_connectedmachine/aaz/latest/connectedmachine/license/_show.py | Updates API version for license show. |
| src/connectedmachine/azext_connectedmachine/aaz/latest/connectedmachine/license/_list.py | Updates API version for license list. |
| src/connectedmachine/azext_connectedmachine/aaz/latest/connectedmachine/license/_list_by_rg.py | Adds new license list-by-rg AAZ module. |
| src/connectedmachine/azext_connectedmachine/aaz/latest/connectedmachine/license/_delete.py | Updates API version and LRO final-state handling. |
| src/connectedmachine/azext_connectedmachine/aaz/latest/connectedmachine/license/_create.py | Updates API version and request schema wiring. |
| src/connectedmachine/azext_connectedmachine/aaz/latest/connectedmachine/license/init.py | Exports new license modules (validate, list-by-rg). |
| src/connectedmachine/azext_connectedmachine/aaz/latest/connectedmachine/license_profile/_wait.py | Updates API version and schema helper naming. |
| src/connectedmachine/azext_connectedmachine/aaz/latest/connectedmachine/license_profile/_show.py | Updates API version and schema helper naming. |
| src/connectedmachine/azext_connectedmachine/aaz/latest/connectedmachine/license_profile/_list.py | Updates API version and schema helper naming. |
| src/connectedmachine/azext_connectedmachine/aaz/latest/connectedmachine/license_profile/_delete.py | Updates API version and LRO final-state handling. |
| src/connectedmachine/azext_connectedmachine/aaz/latest/connectedmachine/license_profile/_create.py | Updates API version and reorganizes arg groups. |
| src/connectedmachine/azext_connectedmachine/aaz/latest/connectedmachine/identity/init.py | Adds new identity command-group exports. |
| src/connectedmachine/azext_connectedmachine/aaz/latest/connectedmachine/identity/__cmd_group.py | Adds new identity command group definition. |
| src/connectedmachine/azext_connectedmachine/aaz/latest/connectedmachine/extension/type/_list.py | Adds new extension type list command module. |
| src/connectedmachine/azext_connectedmachine/aaz/latest/connectedmachine/extension/type/init.py | Adds new command-group package exports. |
| src/connectedmachine/azext_connectedmachine/aaz/latest/connectedmachine/extension/type/__cmd_group.py | Adds new AAZ command group definition. |
| src/connectedmachine/azext_connectedmachine/aaz/latest/connectedmachine/extension/publisher/_list.py | Adds new extension publisher list command module. |
| src/connectedmachine/azext_connectedmachine/aaz/latest/connectedmachine/extension/publisher/init.py | Adds new command-group package exports. |
| src/connectedmachine/azext_connectedmachine/aaz/latest/connectedmachine/extension/publisher/__cmd_group.py | Adds new AAZ command group definition. |
| src/connectedmachine/azext_connectedmachine/aaz/latest/connectedmachine/extension/image/_show.py | Updates API version and operation naming for extension image show. |
| src/connectedmachine/azext_connectedmachine/aaz/latest/connectedmachine/extension/image/_list.py | Updates API version and operation naming for extension image list. |
| src/connectedmachine/azext_connectedmachine/aaz/latest/connectedmachine/extension/_wait.py | Updates API version and schema types for extension wait. |
| src/connectedmachine/azext_connectedmachine/aaz/latest/connectedmachine/extension/_show.py | Updates API version and schema types for extension show. |
| src/connectedmachine/azext_connectedmachine/aaz/latest/connectedmachine/extension/_list.py | Updates API version and schema types for extension list. |
| src/connectedmachine/azext_connectedmachine/aaz/latest/connectedmachine/extension/_delete.py | Updates API version and LRO final-state handling. |
| src/connectedmachine/azext_connectedmachine/aaz/latest/connectedmachine/extension/_create.py | Updates API version, schema typing, and arg aliases. |
| src/connectedmachine/azext_connectedmachine/aaz/latest/connectedmachine/_upgrade_extension.py | Updates API version and LRO final-state handling. |
| src/connectedmachine/azext_connectedmachine/aaz/latest/connectedmachine/_install_patches.py | Updates API version and extends windows patch selection args. |
| src/connectedmachine/azext_connectedmachine/aaz/latest/connectedmachine/_delete.py | Updates delete to support no-wait and LRO polling behavior. |
| src/connectedmachine/azext_connectedmachine/aaz/latest/connectedmachine/_assess_patches.py | Updates API version and schema helper naming. |
| src/connectedmachine/azext_connectedmachine/aaz/latest/connectedmachine/init.py | Exports additional generated modules (list-by-sub, wait). |
|
connectedmachine |
|
/azp run |
|
Azure Pipelines: Successfully started running 2 pipeline(s). |
|
/azp run |
|
Azure Pipelines: Successfully started running 2 pipeline(s). |
|
/azp run |
|
Azure Pipelines: Successfully started running 2 pipeline(s). |
|
/azp run |
|
Azure Pipelines: Successfully started running 2 pipeline(s). |
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 79 out of 84 changed files in this pull request and generated 7 comments.
Comments suppressed due to low confidence (2)
src/connectedmachine/azext_connectedmachine/commands.py:22
connectedmachine license list-by-rgis removed from the command table. This is a breaking CLI surface-area change for users who still call the old command name. Please keep the command (or formally deprecate it) rather than removing it fromcommand_table.
src/connectedmachine/HISTORY.rst:7- The 4.0.0b1 HISTORY entry says
2026/06/19-previewis used for AAZ generation, but the generated command files in this PR use API version2026-06-16-preview. This mismatch makes the changelog misleading. Also, the underline lines include trailing tab characters (after+++++) which can render oddly in RST.
4.0.0b1
+++++
* 2026/06/19-preview is used for aaz generation. Migrated to aaz.
| ) | ||
| _args_schema.script_uri_managed_identity = AAZObjectArg( | ||
| options=["--script-uri-id", "--script-uri-managed-identity"], | ||
| options=["--script-uri-managed-id", "--script-uri-managed-identity"], |
| nullable=True, | ||
| ) | ||
| _args_schema.script_uri_managed_identity = AAZObjectArg( | ||
| options=["--script-uri-managed-id", "--script-uri-managed-identity"], |
| # define Arg Group "Source" | ||
|
|
||
| _args_schema = cls._args_schema | ||
| _args_schema.command_id = AAZStrArg( | ||
| options=["--command-id"], | ||
| arg_group="Source", | ||
| help="Specifies the commandId of predefined built-in script.", | ||
| nullable=True, | ||
| ) | ||
| _args_schema.script = AAZStrArg( | ||
| options=["--script"], | ||
| arg_group="Source", | ||
| help="Specifies the script content to be executed on the machine.", | ||
| nullable=True, | ||
| ) | ||
| _args_schema.script_uri = AAZStrArg( | ||
| options=["--script-uri"], | ||
| arg_group="Source", | ||
| help="Specifies the script download location. It can be either SAS URI of an Azure storage blob with read access or public URI.", | ||
| nullable=True, | ||
| ) | ||
| _args_schema.script_uri_managed_identity = AAZObjectArg( | ||
| options=["--script-uri-managed-id", "--script-uri-managed-identity"], | ||
| arg_group="Source", | ||
| help="User-assigned managed identity that has access to scriptUri in case of Azure storage blob. Use an empty object in case of system-assigned identity. Make sure the Azure storage blob exists, and managed identity has been given access to blob's container with 'Storage Blob Data Reader' role assignment. In case of user-assigned identity, make sure you add it under VM's identity. For more info on managed identity and Run Command, refer https://aka.ms/ManagedIdentity and https://aka.ms/RunCommandManaged.", | ||
| nullable=True, | ||
| ) | ||
| cls._build_args_runcommandmanagedidentity_create_or_update_update(_args_schema.script_uri_managed_identity) |
| # hide the standalone by-subscription command; `list` now covers both | ||
| self.command_table.pop("connectedmachine list-by-sub", None) |
| '--resource-group "{rg}" ' | ||
| '--location "{location}" ' | ||
| '--script "Write-Host Hello World!" ' | ||
| '--source script="Write-Host Hello World!" ' |
| # Use the actual perimeter configuration name returned by the list command. | ||
| # The name is '<perimeterGuid>.<associationName>' assigned by Azure and cannot be guessed. | ||
| self.kwargs['perimeterName'] = nsp_configs[0]['name'] |
|
|
||
| :example: sample command for run-command update | ||
| :example: Sample command for run-command update | ||
| az connetcedmachine run-command update --resource-group myResourceGroup --name myRunCommand --machine-name myMachine --subscription mySubscription --tags Tag1=Value1 |
|
Hey @yaotongms could you address the Copilot review comments? |
This checklist is used to make sure that common guidelines for a pull request are followed.
Related command
General Guidelines
azdev style <YOUR_EXT>locally? (pip install azdevrequired)python scripts/ci/test_index.py -qlocally? (pip install azdevrequired)For new extensions:
About Extension Publish
There is a pipeline to automatically build, upload and publish extension wheels.
Once your pull request is merged into main branch, a new pull request will be created to update
src/index.jsonautomatically.You only need to update the version information in file setup.py and historical information in file HISTORY.rst in your PR but do not modify
src/index.json.🤖 PR Validation — ❌ Action needed
❌Azure CLI Extensions Breaking Change Test